package com.yunhe.policyfulfillment.authority.service;

import com.yunhe.common.exception.UniqueConstraintsException;
import com.yunhe.policyfulfillment.authority.domain.PolicyMenu;

import java.util.List;

/**
 * @author zhengbo
 * @date 2021/9/17 16:18
 */
public interface PolicyMenuService {

    /**
     * 新增
     * @author zb
     * @date 2021/09/17
     * @param menu 菜单
     * @return int
     **/
    int createMenuSelective(PolicyMenu menu) throws UniqueConstraintsException;

    /**
     * 刪除
     * @author zb
     * @date 2021/09/17
     * @param id id
     * @return int
     **/
    int deleteMenuByPrimaryKey(Long id);

    /**
     * 刪除
     * @author zb
     * @date 2021/09/17
     * @param ids ids
     **/
    void deleteMenuByIds(String ids);

    /**
     * 更新
     * @author zb
     * @date 2021/09/17
     * @param menu 菜单
     * @return int
     **/
    int updateMenuByPrimaryKeySelective(PolicyMenu menu) throws UniqueConstraintsException;

    /**
     * 根据主键查询
     * @author zb
     * @date 2021/09/17
     * @param id id
     * @return int
     **/
    PolicyMenu searchMenuByPrimaryKey(Long id);

    /**
     * 根据角色id查询菜单列表
     * @param roleId 角色id
     * @return List<PolicyMenu>
     */
    List<PolicyMenu> searchPolicyMenusByRoleId(Long roleId);

    /**
     * 查询菜单列表
     * @return List<PolicyMenu>
     */
    List<PolicyMenu> searchPolicyMenus();

    /**
     * 根据角色id查询菜单列表
     * @param roleId 角色id
     * @return List<PolicyMenu>
     */
    List<PolicyMenu> searchPolicyMenuListByRoleIdForLogin(Long roleId);
}
